import * as THREE from "three";
// 导入场景
import scene from "@/three/scene"
// 导入相机
import camera from "@/three/camera"
// 导入渲染器
import renderer from "@/three/renderer";
// 导入控制器
import controls from "@/three/controls";
// 设置时钟
// Clock该对象用于跟踪时间。如果performance.now可用，则 Clock 对象通过该方法实现，否则回落到使用略欠精准的Date.now来实现。
// .oldTime : Float 存储时钟最后一次调用 start, .getElapsedTime() 或 .getDelta() 方法的时间。默认值是 0。
const clock = new THREE.Clock();

export default function animate() {

    let elapsedTime = clock.getElapsedTime();

    controls.update();
    renderer.render(scene, camera);
    // requestAnimationFrame 是一个用于优化浏览器动画效果的 API。它可以让浏览器在下一次重绘前执行指定的回调函数，
    // 从而可以更加流畅地执行动画效果，避免了使用 setTimeout 或 setInterval 可能引起的性能问题。
    requestAnimationFrame(animate);
}